﻿namespace GamFi.Admin.API.Application.Contracts.User.UpdateUser;

/// <summary>
/// Запрос на обновление информации о пользователе
/// </summary>
public class UpdateUserRequest
{
    /// <summary>
    /// Идентификатор пользователя
    /// </summary>
    public Guid UserId { get; set; }

    /// <summary>
    /// Имя пользователя
    /// </summary>
    public string FirstName { get; set; } = default!;

    /// <summary>
    /// Фамилия пользователя
    /// </summary>
    public string LastName { get; set; } = default!;

    /// <summary>
    /// Отчество пользователя
    /// </summary>
    public string? Patronymic { get; set; }

    /// <summary>
    /// Идентификатор страны пользователя
    /// </summary>
    public Guid CountryId { get; set; }

    /// <summary>
    /// Имя пользователя
    /// </summary>
    public string UserName { get; set; } = default!;

    /// <summary>
    /// Идентификатор картинки пользователя
    /// </summary>
    public Guid? ImageId { get; set; }
    
    /// <summary>
    /// Пустой конструктор
    /// </summary>
    public UpdateUserRequest()
    {
    }
    
    /// <summary>
    /// Конструктор для создания запроса на обновление информации о пользователе
    /// </summary>
    /// <param name="request">Объект запроса на обновление информации о пользователе</param>
    public UpdateUserRequest(UpdateUserRequest request)
    {
        UserId = request.UserId;
        FirstName = request.FirstName;
        LastName = request.LastName;
        Patronymic = request.Patronymic;
        CountryId = request.CountryId;
        UserName = request.UserName;
        ImageId = request.ImageId;
    }
}